#!/bin/bash

# 当任何命令失败时，立即退出脚本
set -e

# --- 变量定义 ---
IMAGE_NAME="nmrtc_docker"
CONTAINER_NAME="apprtc-server"

# --- 1. 构建 Docker 镜像 ---
echo "正在构建 Docker 镜像 (强制重新拉取代码)..."
# 我们传递一个每次都不同的 CACHE_BUSTER 参数，来强制 Docker 重新执行 git clone 步骤。
docker build --build-arg CACHE_BUSTER=$(date +%s) . -t $IMAGE_NAME

# --- 2. 停止并移除旧容器 (如果存在) ---
echo "正在清理旧的容器..."
docker stop $CONTAINER_NAME > /dev/null 2>&1 || true
docker rm $CONTAINER_NAME > /dev/null 2>&1 || true

# --- 3. 在后台启动新容器 ---
echo "正在启动新容器: $CONTAINER_NAME..."
docker run -d -p 443:443 -p 8089:8089 --name $CONTAINER_NAME $IMAGE_NAME

# --- 4. 等待容器启动并拷贝新证书 ---
echo "正在等待容器初始化..."
sleep 5 # 等待5秒，确保容器内的服务已启动

echo "正在从容器中拷贝新生成的证书..."
docker cp $CONTAINER_NAME:/cert/cert.crt .

echo ""
echo "--- 脚本执行完毕 ---"
echo "一份全新的证书 'cert.crt' 已被拷贝到当前目录。"
echo "请您手动在 macOS 的“钥匙串访问”中，删除所有旧的 appr.tc 证书，然后添加并信任这个新的证书。"
echo ""
echo "服务正在后台运行。如果您想查看实时日志，请打开新终端并执行："
echo "docker logs -f $CONTAINER_NAME"
echo ""
echo "当您测试完毕后，请在终端执行以下命令来停止服务："
echo "docker stop $CONTAINER_NAME"
